// //解构赋值：ES6允许我们按照一定的规则，从数组和对象内取值，给声明的变量赋值

// //1.对象解构  属性来找值  

// // 获取参数： let {username,password....} = ctx.request.body/query/params

// // state = {pagenum,limit} let {pagenum,limit} = this.state;

// // 起别名  给默认值

// let {username:u,password=12346} = {username:'lili'};

// console.log(u); //undefined

// // nodejs  let {readFieSync,writeFileSyc,...} = require('fs'); 

// // let {ceil,floor} = Math;



// //2.数组解构  下标来找值

// let a = 10;

// let b = 20;

// [a,b] = [b,a];

// console.log(a,b);


// //3.函数参数的解构

// function person({name,age=18}){
//     console.log(name,age)
// }

// person({name:'lili'})

// function fun([a,b]){

// }

// fun([1,2])

// //...扩展运算符 复制

// let arr1 = [1,2,3];

// let arr2 = [4,5,6];

// // let arr = [...arr1];

// let arr = [...arr1,...arr2]; //concat()

// let obj1 = {num1:1};

// let obj2 = {num2:2};

// let obj = {...obj1,...obj2};

// //3.函数的rest参数

// //注：1.所有参数的最后

function fun(str,...nums){
    console.log(nums);
    let sum = nums.reduce((pre,cur) => {
        return pre+cur
    })
    return `${str}:${sum}`
}
console.log(fun('和',1,2,3,4,5))

